/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package clinicapoo.services;

import clinicapoo.dao.Transaction;
import clinicapoo.exceptions.ApplicationException;
import clinicapoo.factory.Business;
import clinicapoo.factory.DAO;
import clinicapoo.model.Especialidade;
import java.util.List;

/**
 *
 * @author Fabio Montezuma
 */
public class EspecialidadeServices extends BaseServices
{
	public List<Especialidade> listar() throws ApplicationException
	{
		try
		{
			log.debug("Listando especialidades");
			return DAO.especialidade.listar();
		}
		catch (Exception e)
		{
			log.error(e.getMessage(), e);
			throw new ApplicationException("Ocorreu um erro ao listar especialidades");
		}
	}

	public void cadastrar(Especialidade esp) throws ApplicationException
	{
		log.debug("Listando especialidades");

		Transaction tx = null;
		try
		{
			tx = new Transaction();
			Business.especialidade.cadastrar(esp);
			tx.commit();
			log.info("Especialidade cadastrada com sucesso: {}", esp.toString());
		}
		catch (ApplicationException e)
		{
			logApplicationException(e);
			tx.rollback();
			throw e;
		}
		catch (Exception e)
		{
			log.error(e.getMessage(), e);
			throw new ApplicationException("Ocorreu um erro ao cadastrar especialidade");
		}
	}
}
